package com.cw.jeeyt.service.intf.api;

import java.util.List;

import com.cw.base.common.model.enums.EnumDatabaseType;
import com.cw.jeeyt.service.bo.api.ApiDatabaseScriptConfigBo;
import com.cw.jeeyt.service.bo.api.ApiTableBo;

/**
 * 数据库数据信息生成接口
 */
public interface ApiDataGenenratorService {
    /**
     * 生成数据库数据
     *
     * @return
     */
    List<ApiTableBo> generateData(Long databaseId, String tablePrefix) throws Exception;

    /**
     * 生成建表脚本
     *
     * @param apiTables
     * @param apiDatabaseScriptConfigBo
     */
    void generateTableScript(String scriptPath, List<ApiTableBo> apiTables,
        ApiDatabaseScriptConfigBo apiDatabaseScriptConfigBo, EnumDatabaseType databaseType) throws Exception;

    /**
     * 生成数据脚本
     */
    void generateInsertScript(String scriptPath, List<ApiTableBo> apiTables, ApiDatabaseScriptConfigBo scriptConfigBo,
        EnumDatabaseType databaseType) throws Exception;

    /**
     * 生成数据库表缩写
     *
     * @param apiTables
     */
    void generateTableAbbreviation(List<ApiTableBo> apiTables, Long databaseId);
}
